const a = [1,2,3,4,5,6,11,12,13,14,15]
const b = [6,7,8,9,10]


/**
 * 并集: A、B中都有的数据
 * @param A
 * @param B
 * @returns {*[]}
 */
// 并级: 两个数组中加起来，但是没有重复的。
// 如果A，B中本身没有重复的，
// 那么加起来后， 去重即可
function union(A,B){
   return  [...new Set([...A, ...B])]
}

// 先把A放进去， 再去B里面找A中没有的数放进去。
function union1(A,B) {
    return [...A, ...B.filter(item => !a.includes(item))]
}

console.log(union1(a, b));
console.log(union(a,b))

/**
 * 交集: A, B 中都有的数据
 * @param A
 * @param B
 * @returns {*}
 */

// A - B 就是A中有， B中没有的， 那么A中去掉B中也有的即可
function isDiff(A,B){
    return A.filter(item => B.includes(item))
}

console.log(isDiff(a, b));

/**
 * 差集: A有，B没有的
 * @param A
 * @param B
 * @returns {*}
 */

function diff(A, B) {
    return A.filter(item => !B.includes(item))
}
